#ifndef Email_H
#define Email_H

#include <string>
#include <iostream>
/*
 *	Name: Joshua Zuber
 *	Date: 3/19/2014
 *  Course: CS 325; Spring 2014
 *	Description:	This is the header file for the email class.  Getters and setters and implemented here, as well and the Spam and Ham classes.
 */
using namespace std;
namespace E{
	class Email{
		private:
			string body;
			int numberOfWords;
			double probability;
			int numOutliers;
			string outliers[15];
			bool isSpam;

		public:
			void setBody(string body){
				this->body = body;
			};
			void setNumberOfWords(int num){
				this->numberOfWords = num;
			};
			void setProbability(double d){
				this->probability = d;
			};
			void setIsSpam(bool b){
				this->isSpam = b;
			};
		
			string getBody(){
				return body;
			};
			int getNumberOfWords(){
				return numberOfWords;
			};
			double getProbability(){
				return probability;
			};
			bool isEmailSpam(){
				return isSpam;
			};

			Email();
			Email(string body, int numberOfWords);

			void insertIntoArray(string x);
			string printElementsInArray();
	};

	class Spam: public Email{
		private:
			double percentInSpam;

		public:
			void setPercentInSpam(double d){
				this->percentInSpam = d;
			};

			double getPercentInSpam(){
				return percentInSpam;
			};

	};

	class Ham: public Email{
		private:
			double percentInSpam;
		
		public:
			void setPercentInSpam(double d){
				this->percentInSpam = d;
			};

			double getPercentInSpam(){
				return percentInSpam;
			};

	};

}
#endif